/*************************************
 * HEADER
 ************************************/

#include "dominion.h"
#include "dominion_helpers.h"
#include <string.h>
#include <getopt.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "rngs.h"
#include <math.h>
#include "coreUnitTestHelpers.h"
#include "coreUnitTests.h"

/*******************************/
/******** MAIN FUNCTION ********/
/*******************************/
int main(int argc, char **argv) {
  if (argc != 2){
    printf("Number of Args: %d\n", argc);
    printUsageStatement();
    return -1;
  }

  if(strcmp(argv[1], "all") == 0){
    numHandCardsTester();
    endTurnTester();
    isGameOverTester();
    scoreForTester();
    getCostTester();
  }
  /* else if(strcmp(argv[1], "supplyCount") == 0){ */
  /*   printf("All ok.\n"); */
  /* } */
  /* else if(strcmp(argv[1], "shuffle") == 0){ */
  /*   printf("All ok.\n"); */
  /* } */
  /* else if(strcmp(argv[1], "playCard") == 0){ */
  /*   printf("All ok.\n"); */
  /* } */
  /* else if(strcmp(argv[1], "buyCard") == 0){ */
  /*   printf("All ok.\n"); */
  /* } */
  else if(strcmp(argv[1], "numHandCards") == 0){
    numHandCardsTester();
  }
  /* else if(strcmp(argv[1], "handCard") == 0){ */
  /*   printf("All ok.\n"); */
  /* } */
  /* else if(strcmp(argv[1], "fullDeckCount") == 0){ */
  /*   printf("All ok.\n"); */
  /* } */
  /* else if(strcmp(argv[1], "whoseTurn") == 0){ */
  /*   printf("All ok.\n"); */
  /* } */
  else if(strcmp(argv[1], "endTurn") == 0){
    endTurnTester();
  }
  else if(strcmp(argv[1], "isGameOver") == 0){
    isGameOverTester();
  }
  else if(strcmp(argv[1], "scoreFor") == 0){
    scoreForTester();
  }
  /* else if(strcmp(argv[1], "getWinners") == 0){ */
  /*   printf("All ok.\n"); */
  /* } */
  /* else if(strcmp(argv[1], "drawCard") == 0){ */
  /*   printf("All ok.\n"); */
  /* } */
  else if(strcmp(argv[1], "getCost") == 0){
    getCostTester();
  }
  /* else if(strcmp(argv[1], "discardCard") == 0){ */
  /*   printf("All ok.\n"); */
  /* } */
  /* else if(strcmp(argv[1], "updateCoins") == 0){ */
  /*   printf("All ok.\n"); */
  /* } */
  else{
    printUsageStatement();
    return -1;
  }

  return 0;
}
